package javaMetaModel.visitor;

import javaMetaModel.Annotations;
import javaMetaModel.Attribute;
import javaMetaModel.Comments;
import javaMetaModel.MetaClasse;
import javaMetaModel.MetaInterface;
import javaMetaModel.MetaModel;
import javaMetaModel.MetaPackage;
import javaMetaModel.Methode;
import javaMetaModel.MethodeBody;
import javaMetaModel.MethodeSignature;
import javaMetaModel.Modifier;
import javaMetaModel.Parameter;
import javaMetaModel.Variable;
import javaMetaModel.Visibility;
import javaMetaModel.type.MetaParametricType;
import javaMetaModel.type.MetaType;

public interface IMetaModelVisitor {

	void visitVisibility(Visibility visibility);

	void visitType(MetaType metaType);

	void visitInterface(MetaInterface metaInterface);

	void visitClasse(MetaClasse metaClasse);

	void visitMethode(Methode metaMethode);

	void visitSignature(MethodeSignature metaSignature);

	void visitVariable(Variable variable);

	void visitParametricType(MetaParametricType metaParametricType);

	void visitMetaModel(MetaModel metaModel);

	void visitModifier(Modifier modifier);

	void visitAnnotations(Annotations annotations);

	void visitParameter(Parameter parameter);

	void visitMethodeBody(MethodeBody methodeBody);

	void visitComments(Comments comments);

	void visitPackage(MetaPackage aPackage);

	void visitAttribute(Attribute attribute);

}
